﻿YUI.add('agregar-pregunta-list-view', function (Y) {
    'use strict';
    Y.PreguntasCuest = Y.Base.create('PreguntasCuest', Y.View, [], {
        templateIsCharged: false,
        loadTemplate: function () {
            if (this.template == '') {
                var that = this,
                validator = null,
                request = Y.io('/ExcellentProject/scripts/views/cuestionarios/cuestionarios/templates/agregar-preguntas.html', {
                    on: {
                        complete: function (id, response) {
                            that.templateIsCharged = true;
                            that.template = response.responseText;
                            try {
                                $('#table_id').parent().replaceWith('');
                            }
                            catch (err) {
                                console.log(err);
                            }
                            that.render();
                        }
                    },
                    failure: function (id, response) {
                        alert(response)
                    }
                })
            }
        },
        events: {
            '.guardar': {
                click: 'guardarPregunta'
            },
            '.checkPregunta': {
                click: 'habilitarEdicion'
            }
        },

        render: function () {
            this.loadTemplate();
            if (this.templateIsCharged) {
                this.get('container').setHTML(this.template);

                //carga de preguntas
                var preguntas = new Y.Preguntas();
                var that = this, a = preguntas.load({ urlName: 'listPaging' }, function () {

                    var table = $('#table_id').DataTable({
                        "language": {
                            "search": "Buscar:",
                            "lengthMenu": "Items por página: _MENU_",
                            "info": "Items del _START_ al _END_ de _TOTAL_ items.",
                            "emptyTable": "Items no disponibles.",
                            "infoEmpty": "0 ítems.",
                            "paginate": {
                                "next": "Siguiente",
                                "previous": "Anterior",
                                "first": "Primero",
                                "last": "Ultimo"
                            }
                        },
                        "paging": true,
                        retrieve: true,
                        data: preguntas._items,
                        "rowCallback": function (row, aData) {
                            $('td:eq(5)', row).html('<input type="checkbox" id="check' + aData.get('IdPregunta') + '" class="checkPregunta" relationId="text' + aData.get('IdPregunta') + '" />');
                            $('td:eq(6)', row).html('<input type="text" id="text' + aData.get('IdPregunta') + '" style="visibility:hidden;" relationId="' + aData.get('IdPregunta') + '" />');
                        },
                        columns: [
                            { data: '_state.data.Enunciado.lazy.value', width: "50em" },
                            { data: '_state.data.CodigoTipo.lazy.value' },
                            { data: '_state.data.CodigoCategoria.lazy.value' },
                            { data: '_state.data.CodigoArea.lazy.value' },
                            { data: '_state.data.Estado.lazy.value' },
                            { data: '_state.data.IdPregunta.lazy.value' },
                            { data: '_state.data.IdPregunta.lazy.value' }
                        ]
                    });
                    table.draw();
                });
                Y.one('#navigateCuestionario').set('href', '/cuestionarios/' + this.get('cuestionario'))
                Y.one('#cancelar').set('href', '/cuestionarios/' + this.get('cuestionario'))

                Y.one('#idCuestionario').set('value', this.get('cuestionario'))
            }
        },

        guardarPregunta: function (ev) {
            var preguntas = Y.all('[type =text][style=""]');
            preguntas.each(function (pregunta) {
                var idPregunta = pregunta.getAttribute('relationId')
                var valorPregunta = pregunta.get('value')
                var idCuestionario = Y.one('#idCuestionario').get('value');
                var preguntaCuestionario = new Y.PreguntaCuestionario({
                    IdCuestionario: idCuestionario,
                    IdPregunta: idPregunta,
                    Calificacion: valorPregunta
                })
                var that = this, a = preguntaCuestionario.save({ idCuestionario: idCuestionario }, function (err, response) {
                    if (err != null)
                        bootbox.dialog({
                            message: "Ocurrieron problemas al actualizar la pregunta seleccionada",
                            title: "Problemas al registrar la pregunta",
                            show: true,
                            backdrop: true,
                            closeButton: true,
                            animate: true,

                            className: "my-modal",
                            buttons: {
                                success: {
                                    label: "Ok",
                                    className: "btn btn-danger",

                                    /**
                                     * @optional Function
                                     * the callback to invoke when this button is clicked
                                     */
                                    callback: function () { }
                                }
                            }
                        });
                    else {

                        bootbox.dialog({
                            message: "<h5>Pregunta grabada</h5>",
                            title: "Confirmación",
                            show: true,
                            backdrop: true,
                            closeButton: true,
                            animate: true,

                            className: "my-modal",
                            buttons: {
                                success: {
                                    label: "Ok",
                                    className: "btn btn-success",

                                    callback: function () { }
                                }
                            }
                        })

                        Y.one('#navigateCuestionario').simulate("click");
                    }
                });
            });





        },
        habilitarEdicion: function (ev) {
            var node = document.getElementById(ev.currentTarget._node.attributes['relationId'].value)
            debugger
            if (ev.currentTarget.get('checked'))
                node.setAttribute('style', '')
            else
                node.setAttribute('style', 'visibility:hidden')
        }
    })

}, '0.0.0.1', {
    requires: ['view', 'handlebars', 'handlebars-select-helper', 'node',
        'pregunta-consulta-model-list', 'pregunta-consulta-model', 'event', 'node-event-simulate', 'preguntacuestionario-model']
})